iT邦幫忙

2024 iThome 鐵人賽

DAY 19
1
Software Development

可以Go一輩子嗎?系列 第 19

Day19. Package的基本概念及創建方法

  • 分享至 

  • xImage
  •  

Day19. Package的基本概念及創建方法

今天來講一下Go語言的Package的基本概念及創建方法

Package是一個目錄,裡面包含了一個或多個Go檔案,這些檔案通常是相關的,例如一個Package可能包含了一個或多個函式、類型等等。在Go語言中,Package是一個很重要的概念,因為Go語言的封裝是通過Package來實現的,也就是說,一個Package中的函式、類型等等,只有在這個Package中才能被訪問,外部的Package是無法訪問的,除非這個函式、類型等等是公開的(即首字母大寫)。

建立Package

要建立一個Package,我們需要先建立一個目錄,然後在這個目錄下建立一個或多個Go檔案,並且將相同Package所屬檔案的第一行加上package <package-name>,這樣就可以將這些檔案歸類到同一個Package中進行初步分類。

運行Package

要運行一個Package,我們需要先進入到這個Package的目錄下,然後執行以下命令:

go run <file-name>.go

注意:如果要直接運行Package中的Go檔案的話,這個檔案中必須包含main函式與設定package main,否則會報錯。

Import Package

要引入一個Package,我們需要在Go檔案中加上import <package-name>,這樣就可以使用這個Package中的函式、類型等等了。如果要引入的Package是Go語言的內建Package的話,我們可以直接引入,例如:

import "fmt"

如果要引入的Package是自己寫的Package的話,我們需要指定Package的路徑為相對路徑或絕對路徑,例如:

import "mygo/five/exclamation"

func main() {
    exclamation.MyGOFiveExclamation()
}

如果要引入的Package是第三方的Package的話,我們可以使用go get來下載這個Package,例如:

go get github.com/gin-gonic/gin

然後在Go檔案中引入這個Package,例如:

import (
    ginAlias "github.com/gin-gonic/gin"
 ) // 題外話,你可以透過這種方式來為Package取別名

func callMethodWithAlias() {
    r := ginAlias.Default()
    r.GET("/", func(c *ginAlias.Context) {
        c.JSON(200, ginAlias.H{
            "message": "Hello, World!",
        })
    })
    r.Run() // listen and serve on
}

如果你只需要進行初始化,但不想使用這個Package的話,可以使用_來忽略這個Package,例如:

   import (
       "database/sql"
        _ "github.com/mattn/go-sqlite3" // 本package只用來初始化sqlite3相關功能,真正操作sqlite3的是database/sql
   )

那麼今天的文章就到這告一段落,如果我的文章有任何地方有錯誤請在留言區反應
明天將會介紹Go語言的Module的基本概念及創建方法
time


上一篇
Day18. context與sync在非同步中的應用
下一篇
Day20. Module介紹與如何管理依賴 (go mod)
系列文
可以Go一輩子嗎?31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言